﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class frmAdmonPlantilla : cGlobal
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
              this.CargarPlantillas();
        }
    }

    protected void btnGuardar_Click(object sender, ImageClickEventArgs e)
    {
        bool Tets = Validar();

        if (Tets == true)
        {
            if (this.hidPlantillaEdit.Value.ToString() == "0")
            {
                NuevaPlantilla();
            }
            else
            {
                ActualizarPlantilla(); 
            }
        }
    }

    protected void grdUsuarios_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridViewRow gvr = this.grdPlantillas.Rows[e.NewEditIndex];
        GridView grdPlantillas = (GridView)gvr.NamingContainer;
        this.hidIdPlantillaLoad.Value = grdPlantillas.DataKeys[gvr.RowIndex]["ID"].ToString();
        this.txtTitulo.Text = Server.HtmlDecode(gvr.Cells[1].Text);
        this.txtdescripcion.Text = Server.HtmlDecode(gvr.Cells[2].Text);
        this.hidPlantillaEdit.Value = "1";
        int IdPlantilla;
        IdPlantilla =  Convert.ToInt16(grdPlantillas.DataKeys[gvr.RowIndex]["ID"].ToString());
        this.btnEliminar.Enabled = true; 

        CargarHistorico(IdPlantilla);

    }

    protected void drpVersiones_SelectedIndexChanged(object sender, EventArgs e)
    {
        string  testValue;
        testValue = this.drpVersiones.SelectedValue;   

        if (Convert.ToInt32(testValue) > 0 )
        {
            DetallePlantilla(Convert.ToInt32(testValue));         
        }

    }

    //protected void imBtnLimpiar_Click(object sender, ImageClickEventArgs e)
    //{
    //    limpiar();
    //    CargarPlantillas(); 
    //}

    protected void imBtnActivar_Click(object sender, ImageClickEventArgs e)
    {
        if (this.drpVersiones.Items.Count > 0)
        {

            if (Convert.ToInt32(this.drpVersiones.SelectedValue) > 0)
            {
                try
                {
                    objPlantilla.ActivarPlantilla(Convert.ToInt32(this.drpVersiones.SelectedValue));
                    limpiar();
                    CargarPlantillas();
                    objJavaScript.jsAlert("Se activo correctamente la Plantilla seleccionada.", Page);
                }
                catch (Exception ex)
                {
                    limpiar();
                    CargarPlantillas();
                    objJavaScript.jsAlert("Ocurrio un error al activar la plantilla.", Page);
                }
            }
            else
            {
                this.drpVersiones.Focus();
                objJavaScript.jsAlert("Es necesario seleccionar la plantilla que va a activar.", Page);

            }
        }

    }

    protected void btnEliminar_Click(object sender, ImageClickEventArgs e)
    {
        Int32 IdPlantilla;
        IdPlantilla = Convert.ToInt32(this.hidIdPlantillaLoad.Value.ToString());

        if (IdPlantilla > 0)
        {
            try
            {
                objPlantilla.InactivarPlantilla(IdPlantilla);
                objJavaScript.jsAlert("Se elimino correctamente la plantilla.", Page);
            }
            catch (Exception ex)
            {
                objJavaScript.jsAlert("Ocurrio un error al eliminar la plantilla.", Page);
            }
            
            
            limpiar();
            CargarPlantillas();
 

        }
     

    }

    protected void btnBuscrar_Click(object sender, ImageClickEventArgs e)
    {
        if (this.txtTitulo.Text.Length > 0)
        {
            CargarPlantillasFilter();
        }
        else
        {
            this.txtTitulo.Focus();
            objJavaScript.jsAlert("Para buscar plantillas por titulo es necesario ingresarlo.", Page);
        }
    }

    private void DetallePlantilla(Int32 IdDetalle)
    {
        DataSet dts = objPlantilla.GetDetallePlantilla(IdDetalle);

         this.txtPlantillaEdit.Text = "";

         if (dts.Tables[0].Rows.Count > 0)
         {
             this.txtPlantillaEdit.Text = dts.Tables[0].Rows[0]["TEXTO"].ToString(); 
         }
    }

    private void ActualizarPlantilla()
    {

        try
        {
            int TestLong;
            TestLong = this.txtPlantilla.Text.Length;

            Int16 IdEncabezado;
            IdEncabezado = Convert.ToInt16(this.hidIdPlantillaLoad.Value.ToString());

            int Accion;
            Accion = 0;

            string TestPlantilla;
            TestPlantilla = this.hidTestPlantilla.Value.ToString();


            if (TestPlantilla == this.txtPlantilla.Text)
            {
                Accion = 0;
            }
            else
            {
                Accion = 1;            
            }

            string Texto1, Texto2;
            Texto1 = "";
            Texto2 = "";

            if (TestLong <= 7999)
            {
                Texto1 = this.txtPlantilla.Text;
            }

            if (TestLong >= 8000)
            {
                Texto1 = this.txtPlantilla.Text.Substring(1, 7999);
                Texto2 = this.txtPlantilla.Text.Substring(8000, TestLong);
            }


            string resultado = objPlantilla.ActualizarPlantilla(IdEncabezado, this.txtTitulo.Text.Trim(), this.txtdescripcion.Text, Texto1, Texto2, Convert.ToInt16(Session["IDUSUARIO"].ToString()), Accion);
            limpiar();
            CargarPlantillas();
            objJavaScript.jsAlert(resultado, Page);
        }
        catch (Exception ex)
        {
            objJavaScript.jsAlert("Ocurrio un error al crear la plantilla.", Page);
        }
    
    }

    private void NuevaPlantilla()
    {
        try
        {
            int TestLong;
            TestLong = this.txtPlantilla.Text.Length;   

            string Texto1, Texto2;
            Texto1 = "";
            Texto2 = "";

            if (TestLong <= 7999)
            {
                Texto1 = this.txtPlantilla.Text;   
            }

            if (TestLong >= 8000) 
            {
                Texto1 = this.txtPlantilla.Text.Substring(1,7999);
                Texto2 = this.txtPlantilla.Text.Substring(8000, TestLong);
            }
            

            string resultado = objPlantilla.ActualizarPlantilla(0, this.txtTitulo.Text.Trim(), this.txtdescripcion.Text, Texto1, Texto2, Convert.ToInt16(Session["IDUSUARIO"].ToString()), 0);
            limpiar();
            CargarPlantillas(); 
            objJavaScript.jsAlert(resultado, Page);
        }
        catch (Exception ex)
        {
            objJavaScript.jsAlert("Ocurrio un error al crear la plantilla.", Page);
        }
    }

    private void CargarPlantillas()
    {
     
        this.grdPlantillas.DataSource = null; 
       

        DataSet ds;
        ds = objPlantilla.GetPlantillas(); 
        this.grdPlantillas.DataSource = ds.Tables[0];
        this.grdPlantillas.DataBind();
       this.grdPlantillas.Columns[0].Visible = false;
     
     }

    private void CargarPlantillasFilter()
    {

        this.grdPlantillas.DataSource = null;


        DataSet ds;
        ds = objPlantilla.GetPlantillasFilter(this.txtTitulo.Text);    
        this.grdPlantillas.DataSource = ds.Tables[0];
        this.grdPlantillas.DataBind();
        this.grdPlantillas.Columns[0].Visible = false;

    }

    private bool Validar()
    {
        if (string.IsNullOrEmpty(this.txtTitulo.Text))
        {
            objJavaScript.jsAlert("Es necesario ingresar el titulo de la Plantilla.", Page);
            this.txtTitulo.Focus();
            return false;
        }


        if (string.IsNullOrEmpty(this.txtPlantilla.Text))
        {
            objJavaScript.jsAlert("Es necesario ingresar el texto de la Plantilla.", Page);
            this.txtPlantilla.Focus();
            return false;
        }
        return true;
    }

    private void limpiar()
    {
        this.txtdescripcion.Text = "";
        this.txtFecha.Text = "";
        this.txtPlantilla.Text = "";
        this.txtPlantillaEdit.Text = ""; 
        this.txtTitulo.Text = "";
        this.txtPlantillaEdit.Text = "";
        this.drpVersiones.SelectedValue = "0";
        this.hidIdPlantillaLoad.Value = "0";
        this.hidPlantillaEdit.Value = "0";
        if (drpVersiones.Items.Count > 0)
        {
            drpVersiones.Items.Clear();   
        }
        this.btnEliminar.Enabled = false;
        this.imBtnActivar.Enabled = false; 
    }

    private void CargarHistorico(int idPlantilla)
    {
        if (this.drpVersiones.Items.Count > 0)
        {
            this.drpVersiones.Items.Clear();
        }
  
        try
        {
            DataSet dts = objPlantilla.GetInfoPlantilla(idPlantilla);

            if (dts.Tables[0].Rows.Count > 0)
            {
                this.txtFecha.Text = dts.Tables[0].Rows[0]["FECHA"].ToString();
                this.txtPlantilla.Text = dts.Tables[0].Rows[0]["TEXTO"].ToString();
                this.hidTestPlantilla.Value = dts.Tables[0].Rows[0]["TEXTO"].ToString();
            }

            if (dts.Tables[1].Rows.Count > 0)
            {
                this.drpVersiones.DataSource = dts.Tables[1];
                this.drpVersiones.DataValueField = dts.Tables[1].Columns[0].ColumnName;
                this.drpVersiones.DataTextField = dts.Tables[1].Columns[1].ColumnName;
                this.imBtnActivar.Enabled = true; 
            }
            else
                this.drpVersiones.DataSource = null;

            this.drpVersiones.DataBind();
            this.drpVersiones.Items.Insert(0, new ListItem("Seleccione...", "0"));
        }
        catch (Exception ex)
        {
            // Page.ClientScript.RegisterStartupScript(this.GetType(), "JS", "<script language='javascript'> alert('No se pudieron cargar las transportadoras: " + Utilidades.FormatearMensajeError(ex.Message) + "'); </Script>");
        }
    }



    protected void btnNuevo_Click(object sender, ImageClickEventArgs e)
    {
        limpiar();
 
    }
}
